home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Headers / dbkit / DBTableView.h < prev    next >
Text File  |  1992-09-08  |  6KB  |  254 lines

  1. /*
  2. **      DBTableView.h
  3. **      Database Kit, Release 3.0
  4. **      Copyright (c) 1992, NeXT Computer, Inc.  All rights reserved. 
  5. */
  6. #import <appkit/graphics.h>
  7. #import <appkit/ScrollView.h>
  8. #import <dbkit/tableProtocols.h>
  9.  
  10. typedef enum {
  11.     DB_RADIOMODE = 0,
  12.     DB_LISTMODE = 2,    /* these defs are same as NX_xxxx */
  13.     DB_NOSELECT = 5
  14. } DBSelectionMode;
  15.  
  16.  
  17. @interface DBTableView : ScrollView
  18. {
  19. @private
  20.     struct {
  21.     unsigned int
  22. #if    __BIG_ENDIAN__
  23.             hideRows:1,
  24.             hideColumns:1,
  25.             editingAllowed:1,
  26.             dynamicRows:1,
  27.             dynamicColumns:1,
  28.             radioMode:1,
  29.             listMode:1,
  30.             allowEmpty:1,
  31.             gridVisible:1,
  32.             useArrowKeys:1,
  33.             allowsReordering:1,
  34.             allowsResizing:1,
  35.             unused:1,
  36.             clicks:3,
  37.             :16;
  38. #else    __BIG_ENDIAN__
  39.             :16,
  40.             clicks:3,
  41.             unused:1,
  42.             allowsResizing:1,
  43.             allowsReordering:1,
  44.             useArrowKeys:1,
  45.             gridVisible:1,
  46.             allowEmpty:1,
  47.             listMode:1,
  48.             radioMode:1,
  49.             dynamicColumns:1,
  50.             dynamicRows:1,
  51.             editingAllowed:1,
  52.             hideColumns:1,
  53.             hideRows:1;
  54. #endif    __BIG_ENDIAN__
  55.     } _tvFlags;
  56.     
  57.     unsigned int    _tvReserved[3];
  58.     unsigned int    _startVec,
  59.             _lastDragVec;
  60.     int        _lastSelVector;
  61.     id        _dragImage;
  62.  
  63.     id        _textFmt;        /* default formatters */
  64.     id        _editFmt;
  65.  
  66. @protected
  67.     id        dataSource;
  68.     id        delegate;        /* gets doubleClick message */
  69.     
  70.     id        rowLayout;        /* row/col layout info */
  71.     id        columnLayout;
  72.     id        rowHeading;        /* shows row/col headings */
  73.     id        columnHeading;
  74.     id        rowsClip;        /* clip views for headings */
  75.     id        columnsClip;
  76.     id        gridView;        /* the actual data view */
  77.     id        rowSel;
  78.     id        columnSel;
  79.     id        cornerView;        /* view in upper left corner */
  80.  
  81.     id        target;
  82.     SEL        doubleAction;
  83.     SEL        action;
  84. }
  85.  
  86. - initFrame:(const NXRect *) newFrame;
  87. - free;
  88.  
  89. - setDataSource:aSource;
  90. - dataSource;
  91.  
  92. - setDelegate:newDelegate;
  93. - delegate;
  94.  
  95. - (BOOL) dynamicRows;
  96. - (BOOL) dynamicColumns;
  97.  
  98. - setRowHeadingVisible: (BOOL) flag;
  99. - (BOOL) isRowHeadingVisible;
  100.  
  101. - setColumnHeadingVisible: (BOOL) flag;
  102. - (BOOL) isColumnHeadingVisible;
  103.  
  104. - setIntercell:(const NXSize *) aSize;
  105. - getIntercell:(NXSize *) theSize;
  106.  
  107. - setGridVisible:(BOOL) flag;
  108. - (BOOL) isGridVisible;
  109.  
  110. - acceptArrowKeys:(BOOL) flag;
  111. - (BOOL) doesAcceptArrowKeys;
  112.  
  113. - allowVectorReordering:(BOOL) flag;
  114. - (BOOL) doesAllowVectorReordering;
  115.  
  116. - allowVectorResizing:(BOOL) flag;
  117. - (BOOL) doesAllowVectorResizing;
  118.  
  119. - (BOOL) isHorizScrollerVisible;
  120. - setHorizScrollerRequired:(BOOL) flag;
  121. - (BOOL) isVertScrollerVisible;
  122. - setVertScrollerRequired:(BOOL) flag;
  123.  
  124. /*
  125.  *  Displaying the view
  126.  */
  127. - drawSelf:(const NXRect *) rects :(int) count;
  128.  
  129. /*
  130.  *  Handling rows/columns
  131.  */
  132. - columnList;
  133. - rowList;
  134.  
  135. - (unsigned int) columnCount;
  136. - (unsigned int) rowCount;
  137.  
  138. - (id <DBTableVectors>) rowAt:(unsigned int) aPosition;
  139. - (id <DBTableVectors>) columnAt:(unsigned int) aPosition;
  140.  
  141. - addColumn:identifier withTitle:(const char *) title;
  142. - addColumn:identifier withFormatter:formatter andTitle:(const char *) title at:(unsigned int) aPosition;
  143.  
  144. - addRow:identifier withTitle:(const char *) title;
  145. - addRow:identifier withFormatter:formatter andTitle:(const char *) title at:(unsigned int) aPosition;
  146.  
  147. - addColumn:aColumn at:(unsigned int) aPosition;
  148. - removeColumnAt:(unsigned int) aPosition;
  149.  
  150. - addRow:aRow at:(unsigned int) aPosition;
  151. - removeRowAt:(unsigned int) aPosition;
  152.  
  153. - (BOOL) moveColumnFrom:(unsigned int) oldPos to:(unsigned int) newPos;
  154. - (BOOL) moveRowFrom:(unsigned int) oldPos to:(unsigned int) newPos;
  155.  
  156. - formatterAt:(unsigned int) row :(unsigned int) column;
  157.  
  158. /*
  159.  *  Editing support.
  160.  */
  161. - editFieldAt:(unsigned int) row :(unsigned int) column;
  162. - setEditable:(BOOL) flag;
  163. - (BOOL) isEditable;
  164. - endEditing;
  165.  
  166. /*
  167.  *  Dealing with the selection
  168.  */
  169. - setMode:(int) newMode;
  170. - (int) mode;
  171.  
  172. - allowEmptySel:(BOOL) flag;
  173. - (BOOL) doesAllowEmptySel;
  174.  
  175. - (unsigned int) selectedRowCount;
  176. - (unsigned int) selectedColumnCount;
  177.  
  178. - (int) selectedRow;
  179. - (int) selectedColumn;
  180.  
  181. - (BOOL) isRowSelected:(unsigned int) row;    /* for either mode */
  182. - (BOOL) isColumnSelected:(unsigned int) column;
  183.  
  184. - deselectAll:sender;            /* for List mode selection */
  185. - selectAll:sender;
  186.  
  187. - setRowSelectionOn:(unsigned int) start :(unsigned int) end to:(BOOL) flag;
  188. - setColumnSelectionOn:(unsigned int) start :(unsigned int) end to:(BOOL) flag;
  189.  
  190. - selectRow:(unsigned int) row byExtension:(BOOL) flag;
  191. - selectColumn:(unsigned int) column byExtension:(BOOL) flag;
  192.  
  193. - deselectRow:(unsigned int) row;
  194. - deselectColumn:(unsigned int) column;
  195.  
  196. - (unsigned int) selectedRowAfter:(unsigned int) aRow;
  197. - (unsigned int) selectedColumnAfter:(unsigned int) aColumn;
  198.  
  199. - sendAction:(SEL) anAction to:anObject forSelectedRows:(BOOL) flag;
  200. - sendAction:(SEL) anAction to:anObject forSelectedColumns:(BOOL) flag;
  201.  
  202. /*
  203.  *  Setting and finding out about pieces of the table.
  204.  */
  205. - rowHeading;
  206. - setRowHeading:newRowHeading;
  207. - columnHeading;
  208. - setColumnHeading:newColumnHeading;
  209.  
  210. /*
  211.  *  Notifications of change
  212.  */
  213. - rowsChangedFrom:(unsigned int) startRow to:(unsigned int) endRow;
  214. - columnsChangedFrom:(unsigned int) startColumn to:(unsigned int) endColumn;
  215. - reloadData:sender;        /* update layout & redisplay all data */
  216. - layoutChanged:sender;        /* # rows, # cols or size changed */
  217.  
  218. /*
  219.  *  Scrolling and other view methods
  220.  */
  221. - scrollRowToVisible:(unsigned int) row;
  222. - scrollColumnToVisible:(unsigned int) column;
  223. - scrollClip:aClip to:(const NXPoint *)newOrigin;
  224. - sizeTo:(NXCoord) width:(NXCoord) height;
  225. - (BOOL) acceptsFirstResponder;
  226. - tile;
  227.  
  228. /*
  229.  *  Target and Action
  230.  */
  231. - setAction:(SEL)aSelector;
  232. - (SEL)action;
  233. - setDoubleAction:(SEL)aSelector;
  234. - (SEL)doubleAction;
  235. - setTarget:anObject;
  236. - target;
  237.  
  238. /*
  239.  *  Archiving
  240.  */
  241. - read:(NXTypedStream *) stream;
  242. - write:(NXTypedStream *) stream;
  243. - finishUnarchiving;
  244.  
  245. @end
  246.  
  247. @interface Object(DBTableViewDelegate)
  248. - tableViewDidChangeSelection:aTableView;
  249. - (BOOL) tableViewWillChangeSelection:aTableView;
  250. - tableView:sender movedColumnFrom:(unsigned int) old to:(unsigned int) new;
  251. - tableView:sender movedRowFrom:(unsigned int) old to:(unsigned int) new;
  252. @end
  253.  
  254.